#ifndef t_xqueue_h
#define t_xqueue_h
/*
 * Sylvain BERTRAND <digital.ragnarok@gmail.com>
 * code protected by GNU GPL v3
 */
G_BEGIN_DECLS
struct wm_xqueue_window_type {
	Window window;
	int type;
};
struct wm_xqueue_window_message {
	Window window;
	Atom message;
};
typedef void (*wm_xqueue_func) (const XEvent *ev, gpointer data);
typedef gboolean (*xqueue_match_func) (XEvent *e, gpointer data);
void xqueue_init(void);
void xqueue_destroy(void);
gboolean xqueue_match_type(XEvent *e, gpointer data);
gboolean xqueue_match_window_type(XEvent *e, gpointer data);
gboolean xqueue_exists(xqueue_match_func match, gpointer data);
gboolean xqueue_exists_local(xqueue_match_func match, gpointer data);
gboolean xqueue_remove_local(XEvent *event_return, xqueue_match_func match, gpointer data);
void xqueue_listen(void);
void xqueue_add_callback(wm_xqueue_func f, gpointer data);
G_END_DECLS
#endif
